A network device, for example, a router, firewall, bridge, etc., includes a number of interconnected components for processing packets. Each component has some number of input and output ports over which packets are received and sent. Each packet input to a component is processed by that component and then forwarded to one or more other components in the device.
In testing a design for a device that is built for a particular communication protocol, the effort generally involves preparing and inputting packets to a simulation of the design, capturing packets that are output from the simulation, and determining whether or not the output packets are correct. Due to the complexity and numerous combinations of possible component interactions, verifying the behavior of internal components and diagnosing problems may be difficult for a developer. The path through which a packet flows through a system may vary in response to the state of the system or the values of certain fields in the packet. In addition, creating individual test stimuli for internal components can be difficult for a developer.
The present invention may address one or more of the above issues.